To date, creating applications that interact with, or in some way extend instant messaging applications has been something that has not had an organized or standardized approach. That is, if someone wishes to extend an instant messaging application in some way, one approach has been to reverse engineer the instant messaging application, and then write code to supply whatever feature or functionality is desired. This approach can create problems not only for the instant messaging application, but for other applications and resources that might be running or available locally.